package com.it.boot.util;

import org.springframework.util.StringUtils;

import java.util.UUID;

public class FileUtils {

    /**
     * 生成随机文件名（保留原始文件扩展名）
     *
     * @param originalFilename 原始文件名（可为null或空）
     * @return 格式：UUID + 扩展名（如 "3b6f7e8d9c1a4b5e.jpg"）
     */
    public static String generateRandomFileName(String originalFilename) {
        if (!StringUtils.hasText(originalFilename)) {
            return UUID.randomUUID().toString().replace("-", "");
        }

        String extension = getFileExtension(originalFilename);
        if (extension == null) {
            extension = "";
        }
        return UUID.randomUUID().toString().replace("-", "") + extension;
    }

    /**
     * 安全获取文件扩展名（带点号）
     *
     * @param originalFilename 原始文件名
     * @return 如 ".jpg"；若无扩展名则返回null
     */
    public static String getFileExtension(String originalFilename) {
        if (!StringUtils.hasText(originalFilename)) {
            return null;
        }

        int lastDotIndex = originalFilename.lastIndexOf('.');
        if (lastDotIndex < 0 || lastDotIndex == originalFilename.length() - 1) {
            return null;
        }

        return originalFilename.substring(lastDotIndex);
    }
}